package com.iwhalecloud.bss.kite.cucc.client.api.reception;

import com.github.pagehelper.PageInfo;
import com.iwhalecloud.bss.kite.client.dto.DataResult;
import com.iwhalecloud.bss.kite.cucc.client.dto.login.CuccLoginInfoDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.login.auth.CuccAuthLoginInfoDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.order.KiteCustomerInfoReq;
import com.iwhalecloud.bss.kite.cucc.client.dto.scene.CuccCustInfoDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.scene.CuccCustInfoDetailDTO;
import com.iwhalecloud.bss.kite.cucc.client.vo.scene.LocalCustInfoVO;

import java.util.Map;

/**
 * @Description 客户接待，迁移极简核心包com.iwhalecloud.bss.kite.service.reception.CustReceptionService
 * 只重写部分定制包功能！
 * @Author Wei.Junhe
 * @Date 2020/1/17 17:52
 * @Param
 * @return
 */
public interface ICustReceptionService {

    /**
     * 单点登录服务
     *
     * @param sysUserId
     * @param sysUserCode
     * @return
     */
    DataResult<Boolean> ssoLogin(String sessionId);

    DataResult<CuccLoginInfoDTO> getLoginInfo(String sessionId);

    /**
     * 调联通接口获取客户信息
     *
     * @param key
     * @return
     */
    DataResult<CuccCustInfoDTO> getCustInfo(String key);

    PageInfo<CuccCustInfoDTO> customerListQuery(KiteCustomerInfoReq kiteCustomerInfoReq);

    DataResult<CuccCustInfoDTO> getCustInfoByCustId(String custId);

    DataResult<CuccCustInfoDetailDTO> getCustomerDetail(KiteCustomerInfoReq kiteCustomerInfoReq);

    LocalCustInfoVO getCustInfoBySceneInstId(String sceneInstId);

    LocalCustInfoVO getCustomerDetailToChange(Map<String, String> custInfoMap, String sceneInstId);

    /**
     * 登录
     * @param sessionId
     * @return
     */
    CuccAuthLoginInfoDTO pretendLogin(String sessionId);

    /**
     * 登录（从订单中心登录）
     * @param sessionId
     * @return
     */
    DataResult<Boolean> pretendLoginFromOrder(String sessionId);


    PageInfo<CuccCustInfoDTO> customerListQueryNew(KiteCustomerInfoReq kiteCustomerInfoReq);

    /**
     * 国际客户列表查询(暂时不用，先保留)
     * @param kiteCustomerInfoReq
     * @return
     */
    PageInfo<CuccCustInfoDTO> customerListQueryNewForNational(KiteCustomerInfoReq kiteCustomerInfoReq);

    CuccCustInfoDetailDTO getCustomerInfoNew(String custId);

    /**
     * 国际客户详情接口
     * @param custId
     * @return
     */
    CuccCustInfoDetailDTO getCustomerInfoNewForNational(String custId);

    PageInfo<CuccCustInfoDTO> queryCustomerTransferList(KiteCustomerInfoReq kiteCustomerInfoReq);

    PageInfo<CuccCustInfoDTO> customerListQueryNewCloud(KiteCustomerInfoReq kiteCustomerInfoReq);
}
